<?php

use Doctrine\Common\Collections\ArrayCollection;

//error_reporting(E_ALL);
//ini_set('display_errors', 'On');

class Usuarios_CreditoController extends Zend_Controller_Action {

    protected $_personaDao;
    protected $_tasaDao;
    protected $_permisoDao;
    protected $_movimientoDao;
    protected $_codigoDao;
    protected $_pagoDao;
    protected $_creditoDao;

    public function init() {
        $this->_permisoDao = new Doctrine_Model_PermisoDao();

        $auth = Zend_Auth::getInstance();
        if ($auth->hasIdentity()) {
            if (!empty($auth->getIdentity()->id)) {
                $usuarioDao = new Doctrine_Model_UsuariosDoctrineDao();
                $usuario = $usuarioDao->obtenerPorId($auth->getIdentity()->id);

                $this->view->usuario = $usuario;
            }
        } else {
            $this->_helper->redirector('index', 'login', 'admin');
        }

        /* Colores */
        $colores = array(
            '5b92d6' => array('5b92d6', '8fbaef'), //azul
            'd6d65b' => array('d6d65b', 'bfbf3f'), //amarillo
            '51ad56' => array('51ad56', '73be78'), //verde
            'db6f70' => array('db6f70', 'e59899'), //rojo
            '5e71a0' => array('5e71a0', '8e9cbc'), //azul oscuro
            'd68e5b' => array('d68e5b', 'e8a97c'), //naranja
            '92989f' => array('92989f', 'bbbec3')); //gris
        $this->view->colorSucursal = $colores[$this->view->usuario->getSucursal()->getColor()];
        /* Colores */

        $this->_codigoDao = new Doctrine_Model_CodigoDao();
        $this->referenciaDao = new Doctrine_Model_Referencias();
        $this->informeDao = new Doctrine_Model_InformeDoctrineDao();
        $this->view->headScript()->appendFile($this->view->baseUrl() . '/js/jquery.maskedinput-1.3.min.js');
        $this->view->headScript()->appendFile($this->view->baseUrl() . '/js/cliente_registrar.js');
        $this->view->headScript()->appendFile($this->view->baseUrl() . '/js/credito_registrar.js');

        $this->_personaDao = new Doctrine_Model_PersonaDao();
        $this->_creditoDao = new Doctrine_Model_CreditoDao();
        $this->_tasaDao = new Doctrine_Model_TasaDao();
        $this->_movimientoDao = new Doctrine_Model_MovimientoDao();
        $this->_pagoDao = new Doctrine_Model_PagosDao();
        $this->_referenciaDao = new Doctrine_Model_Referencias();
    }

    public function registrarAction() {
        $session = new Zend_Session_Namespace("session");
        $noContinua = false;
        $this->view->titulo = "Registrar Credito";

        $this->view->tiposDeCreditosDisponibles = new ArrayCollection();

        $this->view->publicidades = new ArrayCollection();
        $this->view->publicidades = $this->referenciaDao->obternerPublicidades();

        $this->view->tiposInformes = new ArrayCollection();
        $creditosPorParteDelGarante = new ArrayCollection();
        $creditosPorParteDelCliente = new ArrayCollection();

        $cliente_id = $this->getRequest()->getParam("cliente_id");
        $credito_a_renovar_id = $this->getRequest()->getParam("credito_a_renovar_id");

        if (empty($cliente_id) && !isset($session->cliente_id)) {
            // $params = array('acccion_destino' => 'registrarCredito');
            // $this->_helper->redirector('persona', 'busqueda','usuarios',$params);
        } else {
            $this->view->tiposInformes = $this->referenciaDao->obternerTiposInformesVisibles();
            if (empty($cliente_id)) {
                $cliente_id = $session->cliente_id;
                $garante_id = $this->getRequest()->getParam('garante_id');
                if (!empty($garante_id)) {
                    $session->garante_id = $this->getRequest()->getParam('garante_id');
                    $this->view->garante = $this->_personaDao->obtenerPorId($garante_id);
                    $creditosPorParteDelGarante = $this->_creditoDao->obtenerTodosPorPersonaOrdenadoPorEstado($this->view->garante->getId());
                    $this->view->garante_moroso = $this->view->garante->estoyEnMora($creditosPorParteDelGarante);
                }
            }
            $garante_id = $this->getRequest()->getParam('garante_id');
            if (!empty($garante_id)) {
                $session->garante_id = $this->getRequest()->getParam('garante_id');
                $this->view->garante = $this->_personaDao->obtenerPorId($garante_id);
                $creditosPorParteDelGarante = $this->_creditoDao->obtenerTodosPorPersonaOrdenadoPorEstado($this->view->garante->getId());
                $this->view->garante_moroso = $this->view->garante->estoyEnMora($creditosPorParteDelGarante);
            }

            $this->view->cliente = $this->_personaDao->obtenerPorId($cliente_id);
            $this->view->tiposDeCreditosDisponibles = $this->view->cliente->obtenerTiposDeCreditosParaSolicitar();
            $creditosPorParteDelCliente = $this->_creditoDao->obtenerTodosPorPersonaOrdenadoPorEstado($this->view->cliente->getId());
            $this->view->cliente_moroso = $this->view->cliente->estoyEnMora($creditosPorParteDelCliente);

            $session->cliente_id = $cliente_id;
        }
        if (count($this->view->tiposDeCreditosDisponibles) == 0) {
            $noContinua = true;
        }
        if ($this->view->cliente) {
            $creditoARenovar = $this->_creditoDao->obtenerPorId($credito_a_renovar_id);

            if ($creditoARenovar) {
                $montoCreditoARenovar = $creditoARenovar->obtenerMontoAdeudado();

                $this->view->monto_credito_anterior = $montoCreditoARenovar;
                $this->view->credito_anterior_id = $credito_a_renovar_id;
                $this->view->cantidad_cuotas_pendientes = count($creditoARenovar->obtenerCuotasImpagas());
                $numerosDeCuotasPendientesArray = array();
                foreach ($creditoARenovar->obtenerCuotasImpagas() as $cuotai) {

                    $numerosDeCuotasPendientesArray[] = $cuotai->getNumeroDeCuota();
                }
                if ($creditoARenovar->obtenerCuotasImpagas()->last()) {
                    $this->view->monto_x_cuota_adeudada = $creditoARenovar->obtenerCuotasImpagas()->last()->getMontoOriginal();
                }

                $this->view->numeros_de_cuotas_adedudads = implode(',', $numerosDeCuotasPendientesArray);
                $this->view->tiposDeCreditosDisponibles = new ArrayCollection();
                $this->view->tiposDeCreditosDisponibles->add(new Doctrine_Model_Entities_Renovado());
            }
        }


        $this->view->noContinua = $noContinua;
        $this->view->formulas = $this->referenciaDao->obtenerFormulas();
        $this->view->tipos_creditos = $this->referenciaDao->obtenerTiposDeCreditos();

        if ($this->getRequest()->isPost()) {

            $session = new Zend_Session_Namespace("acceso");

            $cliente_id = $this->getRequest()->getParam("cliente_id");
            $garante_id = $this->getRequest()->getParam("garante_id");
            $tasa_id = $this->getRequest()->getParam("tasa_id");
            $formula_id = $this->getRequest()->getParam("formula_id");
            $nro_cuotas = $this->getRequest()->getParam("cuotas");
            $monto = $this->getRequest()->getParam("monto");
            $montoDefinitivo = $this->getRequest()->getParam("monto_definitivo");
            $montoCuota = $this->getRequest()->getParam("monto_x_cuota");
            $montoPrimeraCuota = $this->getRequest()->getParam("monto_usuario");
            $vencimiento = $this->getRequest()->getParam("vencimiento_primera_cuota");
            $primerVencimiento = $this->getRequest()->getParam("vencimiento_usuario");
            $publicidad_id = $this->getRequest()->getParam("publicidad_id");
            $importeAdeudado = $this->getRequest()->getParam("importe_adeudado_hidden");
            if (empty($primerVencimiento)) {
                $formula = $this->referenciaDao->obtenerPorId('Doctrine_Model_Entities_Formula', $formula_id);
                $f = $formula->obtenerFechaPrimieraCuota();
                $primerVencimiento = $f->format('d/m/Y');
            }
            $tipo = $this->getRequest()->getParam("tipo");
            $datos = $this->getRequest()->getParams();
            if (!empty($cliente_id) && !empty($tasa_id) && !empty($nro_cuotas) && !empty($monto) && !empty($publicidad_id)) {


                $unCredito = new Doctrine_Model_Entities_Credito();
                //obtengo el ultimo numero de credito
                $sucursal = Doctrine_Model_Referencias::obtenerPorId('Doctrine_Model_Entities_Sucursal', $this->view->usuario->getSucursal()->getId());
                if ($sucursal) {
                    $ultimoNumeroDeCredito = $sucursal->obtenerUltimoNumeroDeCredito();
                    Doctrine_Model_Referencias::guardar($sucursal);
                }

                //fin de obtengo el ultimo numero de credito

                $monto = $montoDefinitivo;

                /* usuario */
                $unCredito->setUsuario($this->view->usuario);
                /* cliente */
                $unCliente = $this->_personaDao->obtenerPorId($cliente_id);
                $unCredito->setCliente($unCliente);
                /* garante */
                if ($garante_id) {
                    $unGarante = $this->_personaDao->obtenerPorId($garante_id);
                }
                if ($unGarante) {
                    $unCredito->setGarante($unGarante);
                }
                $unCredito->setNumero($ultimoNumeroDeCredito);

                /*                 * *** CODIGO DE SEGURIDAD **** */
                $creditosPorParteDelCliente = $this->_creditoDao->obtenerTodosPorPersonaOrdenadoPorEstado($unCliente->getId());

                $mora = false;
                $advertencia = false;
                if ((!$this->view->usuario->tengoAcceso())) {
                    if ($unCliente->estoyEnMora($creditosPorParteDelCliente)) {
                        $mora = true;
                    }
                    if ($unGarante) {
                        $creditosPorParteDelGarante = $this->_creditoDao->obtenerTodosPorPersonaOrdenadoPorEstado($unGarante->getId());
                        if ($unGarante->estoyEnMora($creditosPorParteDelGarante)) {
                            $mora = true;
                        }
                    }
                    /* advertencia */
                    if ($unCliente->getMora()) {
                        $advertencia = true;
                    }
                }

                //Codigo seguridad
                $usuario = new Doctrine_Model_Entities_Usuario();
                $usuario = $this->view->usuario;

                if (!$usuario->tengoAcceso() && $mora || !$usuario->tengoAcceso() && $advertencia) {
                    $sessionCodSeguridad = new Zend_Session_Namespace("codigo_seguridad");
                    if ($sessionCodSeguridad->codigo) {
                        $this->_codigoDao = new Doctrine_Model_CodigoDao();
                        $unCodigo = new Doctrine_Model_Entities_Codigo();
                        $unCodigo = $this->_codigoDao->obtenerPorCodigo($sessionCodSeguridad->codigo);
                        if ($unCodigo) {
                            if ($unCodigo->getActivo() == 2) {
                                $unCodigo->setActivo(0);
                                $unCodigo->setFechaUso(new DateTime());
                                $this->_codigoDao->guardar($unCodigo);
                                $sessionCodSeguridad->unsetAll();
                            }
                        }
                    } else {
                        $sessionCodSeguridad->isPost = $this->getRequest()->isPost();
                        $sessionCodSeguridad->accion = $this->getRequest()->getActionName();
                        $sessionCodSeguridad->controlador = $this->getRequest()->getControllerName();
                        $sessionCodSeguridad->modulo = $this->getRequest()->getModuleName();
                        $sessionCodSeguridad->params = $this->getRequest()->getParams();
                        $this->_helper->redirector->goToSimple("codigoseguridad", "codigo", "admin");
                    }
                }
                /*                 * *** END CODIGO DE SEGURIDAD **** */

                $publicidad = $this->referenciaDao->obtenerPorId("Doctrine_Model_Entities_Publicidad", $publicidad_id);
                $unCredito->setPublicidad($publicidad);
                $unCredito->getCliente()->setPublicidad($publicidad);
                /* nro_cuotas */
                $unCredito->setNroCuotas($nro_cuotas);
                /* tasa */
                $unaTasa = $this->_tasaDao->obtenerPorId($tasa_id);
                $unCredito->setTasa($unaTasa);
                /* monto */
                $unCredito->setMonto($monto);
                /* vencimiento */

                $vencimientoArray = explode('/', $vencimiento);
                $vencimiento = $vencimientoArray[2] . '-' . $vencimientoArray[1] . '-' . $vencimientoArray[0];

                $unCredito->setVencimiento(new \DateTime($vencimiento));
                /* estado credito */
                //  $a=Doctrine_Model_Referencias::obtenerPorId('Doctrine_Model_Entities_EstadoCredito', 1);
                $unCredito->setEstado(Doctrine_Model_Referencias::obtenerPorId('Doctrine_Model_Entities_EstadoCredito', 1));
                switch ($tipo) {
                    case 'Doctrine_Model_Entities_Nuevo':
                        $tipoCredito = Doctrine_Model_Referencias::obtenerPorId('Doctrine_Model_Entities_Nuevo', 1);
                        $tipo_id = 1;
                        break;
                    case 'Doctrine_Model_Entities_Renovado':
                        $tipoCredito = Doctrine_Model_Referencias::obtenerPorId('Doctrine_Model_Entities_Renovado', 2);


                        $tipo_id = 2;
                        break;
                    case 'Doctrine_Model_Entities_Paralelo':
                        $tipoCredito = Doctrine_Model_Referencias::obtenerPorId('Doctrine_Model_Entities_Paralelo', 3);
                        $tipo_id = 3;
                        break;
                    case 'Doctrine_Model_Entities_Reingreso':
                        $tipoCredito = Doctrine_Model_Referencias::obtenerPorId('Doctrine_Model_Entities_Reingreso', 4);
                        $tipo_id = 4;
                        break;
//                    case 'Doctrine_Model_Entities_RenovParalela':
//                        $tipoCredito = Doctrine_Model_Referencias::obtenerPorId('Doctrine_Model_Entities_RenovParalela', 5);
//                        $tipo_id = 5;
//
//                        $creditoAnterior = $unCliente->getCreditos()->last();
//
//                        if ($creditoAnterior->getTipo()->soyParalelo()) {
//                            $creditoAnterior->setEstado(Doctrine_Model_Referencias::obtenerPorId('Doctrine_Model_Entities_EstadoCredito', 3));
//                            $this->_creditoDao->guardar($creditoAnterior);
//                        }
//
//
//                        break;
                    case 'Doctrine_Model_Entities_Exclusivo':
                        $tipoCredito = Doctrine_Model_Referencias::obtenerPorId('Doctrine_Model_Entities_Exclusivo', 6);
                        $tipo_id = 6;
                        break;


                    default:
                        break;
                }

                if ($creditoARenovar) {
                    //$creditoAnterior = $unCliente->getCreditos()->last();
                    $creditoAnterior = $creditoARenovar;

                    if ($creditoAnterior->getEstado()->getId() == 1) {
                        $creditoAnterior->setEstado(Doctrine_Model_Referencias::obtenerPorId('Doctrine_Model_Entities_EstadoCredito', 3));
                        $creditoAnterior->setFechaCancelado(new DateTime());
                        $CuotasSaldadasArray = $creditoAnterior->saldarCuoatasPorRenovacion();
                        $this->_creditoDao->guardar($creditoAnterior);
                        foreach ($CuotasSaldadasArray as $cuotaSaldadaArray) {
                            $movimiento = new Doctrine_Model_Entities_Entrada();
                            $apellidoYNombres = $creditoAnterior->getCliente()->getApellido() . ', ' . $creditoAnterior->getCliente()->getNombres();
                            $apellidoYNombres = substr($apellidoYNombres, 0, 22);
                            $movimiento->setCategoria($this->_referenciaDao->obtenerPorId('Doctrine_Model_Entities_CategoriaMovimiento', 1));
                            $movimiento->setDescripcion(" " . $apellidoYNombres . " CRE N&#176;:" . $creditoAnterior->getNumero() . " (" . $cuotaSaldadaArray['nroCuota'] . ")");
                            $movimiento->setMonto($cuotaSaldadaArray['monto']);
                            $movimiento->setUsuario($this->view->usuario);
                            $this->_movimientoDao->guardar($movimiento);
                        }
                    }
                }



                $unCredito->setTipo($tipoCredito);


                /* estado cuota */
                $estadoCuotaDao = new Doctrine_Model_EstadoCuotaDao();
                $unEstadoCuota = $estadoCuotaDao->obtenerPorId(1);

                $primerVencimiento = explode("/", $primerVencimiento);
                $vencimientoCuota = new \DateTime("{$primerVencimiento[2]}-{$primerVencimiento[1]}-{$primerVencimiento[0]}");

                for ($i = 1; $i <= $nro_cuotas; $i++) {
                    $unaCuota = new Doctrine_Model_Entities_Cuota();
                    $unaCuota->setCredito($unCredito);
                    $unaCuota->setNumeroDeCuota($i);

                    $unaCuota->setMonto($montoCuota);
                    $unaCuota->setMontoOriginal($montoCuota);
                    $unaCuota->setPunitorio(0.0045);
                    $unaCuota->setEstado($unEstadoCuota);

                    /* vencimiento de cuota */
                    $unaCuota->setVencimiento(new DateTime($vencimientoCuota->format('Y-m-d')));
                    $unaCuota->setVencimientoOriginal(new DateTime($vencimientoCuota->format('Y-m-d')));
                    $vencimientoCuota->modify('+1 month');

                    /* agregar cuota */
                    $unCredito->agregarCuotas($unaCuota);
                }

                if ($this->_creditoDao->guardar($unCredito)) {
                    Zend_Session::namespaceUnset('session');
                    //Zend_Session::destroy();
                    //  echo "OK!!!";

                    if ($tipo == 1 || $tipo == 3 || $tipo == 4) {
                        $movimiento = new Doctrine_Model_Entities_Salida();
                        $apellidoYNombres = $unCredito->getCliente()->getApellido() . ', ' . $unCredito->getCliente()->getNombres();
                        $apellidoYNombres = substr($apellidoYNombres, 0, 22);
                        $movimiento->setDescripcion(" " . $unCredito->getTipo()->getDescripcion() . '(N&#176; ' . $unCredito->getNumero() . ') - ' . $apellidoYNombres);
                        $movimiento->setMonto($unCredito->getMonto());
                        $movimiento->setCategoria(Doctrine_Model_Referencias::obtenerPorId('Doctrine_Model_Entities_CategoriaMovimiento', 2));
                        $movimiento->setUsuario($this->view->usuario);
                        $this->_movimientoDao->guardar($movimiento);
                    } else {
                        $apellidoYNombres = $unCredito->getCliente()->getApellido() . ', ' . $unCredito->getCliente()->getNombres();
                        $apellidoYNombres = substr($apellidoYNombres, 0, 22);
                        $movimiento = new Doctrine_Model_Entities_Salida();
                        $movimiento->setDescripcion(" " . $unCredito->getTipo()->getDescripcionCorta() . '(N&#176; ' . $unCredito->getNumero() . ') - ' . $apellidoYNombres);
                        $movimiento->setMonto($unCredito->getMonto());
                        $movimiento->setCategoria(Doctrine_Model_Referencias::obtenerPorId('Doctrine_Model_Entities_CategoriaMovimiento', 2));
                        $movimiento->setUsuario($this->view->usuario);
                        $this->_movimientoDao->guardar($movimiento);

                        if ($creditoARenovar) {

//                            $pago = new Doctrine_Model_Entities_Pago();
//                            $ultimaCuota = $creditoARenovar->getCuotas()->last();
//                            $pago->setCuota($ultimaCuota);
//                            $pago->setMonto($importeAdeudado);
//                            $pago->setInteresesCobrados(0);
//                            $pago->setInteresesNoCobrados(0);
//                            $pago->setFechaVencimientoCuota($ultimaCuota->getVencimiento());
//                            $pago->setFecha(new DateTime());
//                            $pago->setUsuario($this->view->usuario);
//                            $ultimaCuota->setMonto(0);
//                            $ultimaCuota->agregarPago($pago);
//                            $EstadoSaldadoPorRenovacion = Doctrine_Model_Referencias::obtenerPorId('Doctrine_Model_Entities_EstadoCredito', 3);
//                            $creditoARenovar->setEstado($EstadoSaldadoPorRenovacion);
//                            $this->_creditoDao->guardar($creditoARenovar);
                            //agrego una entrada del monto del credito a renovar
//                            $apellidoYNombres = $unCredito->getCliente()->getApellido() . ', ' . $unCredito->getCliente()->getNombres();
//                            $apellidoYNombres = substr($apellidoYNombres, 0, 22);
//                            $movimiento = new Doctrine_Model_Entities_Entrada();
//                            $movimiento->setDescripcion(" " . $creditoARenovar->getTipo()->getDescripcionCorta() . '(N&#176; ' . $creditoARenovar->getNumero() . ') - ' . $apellidoYNombres);
//                            $movimiento->setMonto($importeAdeudado);
//                            $movimiento->setCategoria(Doctrine_Model_Referencias::obtenerPorId('Doctrine_Model_Entities_CategoriaMovimiento', 2));
//                            $movimiento->setUsuario($this->view->usuario);
//                            $this->_movimientoDao->guardar($movimiento);
                        }
                    }

                    //  $parametros = array('persona_id' => $unCliente->getId());
                    // $this->_helper->redirector('obternerdatospersona', 'busqueda', 'usuarios', $parametros); //al detalle
                    $parametros = array('credito_id' => $unCredito->getId());
                    $this->_helper->redirector('imprimir', 'credito', 'usuarios', $parametros); //al detalle
                } else {
                    //  echo "ERROR!!!";
                }
            } else {

                $this->view->error = true;
                $this->view->mensaje = "Problemas al intentar registrar el credito, verifique los datos ingresados";
            }
        }
    }

    public function calcularcuotasAction() {

        $this->_helper->layout->disableLayout();

        $monto = 0;
        $cant_cuotas = 0;
        $montoDeCuotaImpaga = 0;
        if ($this->getRequest()->isPost()) {

            $formula_id = $this->getRequest()->getParam("formula");
            $cant_cuotas = (int) $this->getRequest()->getParam("cuotas");
            $monto = (float) $this->getRequest()->getParam("monto");
            $montoUsuario = $this->getRequest()->getParam("monto_usuario");
            $vencimientoUsuarioStr = $this->getRequest()->getParam("vencimiento_usuario");
            if (empty($vencimientoUsuarioStr)) {
                $fechaHoy = new DateTime(date('Y-m-d'));
                $intervalo = new DateInterval('P1M');
                $fechaHoy->add($intervalo);
                $fechaHoy->setDate($fechaHoy->format('Y'), $fechaHoy->format('m'), 5);
                $vencimientoUsuarioStr = $fechaHoy->format('d/m/Y');
            }

            $tipo = $this->getRequest()->getParam("tipo");
            $cliente_id = $this->getRequest()->getParam("cliente_id");
            $vencimientoUsuarioArray = explode('/', $vencimientoUsuarioStr);
            $vencimientoUsuarioStr = $vencimientoUsuarioArray[2] . '-' . $vencimientoUsuarioArray[1] . '-' . $vencimientoUsuarioArray[0];
            $formula = new Doctrine_Model_Entities_Formula();
            $formula = $this->referenciaDao->obtenerPorId('Doctrine_Model_Entities_Formula', $formula_id);
            $montoSinAgregado = $monto;
            $credito_a_renovar_id = $this->getRequest()->getParam("credito_a_renovar_id");

            if ($tipo == 'Doctrine_Model_Entities_Renovado') {//si es renovado
                $cliente = $this->_personaDao->obtenerPorId($cliente_id);
                if ($cliente) {
                    if (!empty($credito_a_renovar_id)) {
                        $creditoAnterior = Doctrine_Model_Referencias::obtenerPorId('Doctrine_Model_Entities_Credito', $credito_a_renovar_id);
                    } else {
                        //este else no se si va pero lo hago para que no se me descajetee lo que viene despues, por las dudas
                        foreach ($cliente->getCreditos() as $c) {
                            if ($c->estasAptoARenovar()) {
                                $creditoAnterior = $c;
                            }
                        }
                        if (!$creditoAnterior) {
                            $creditoAnterior = $cliente->getCreditos()->last();
                        }
                    }
                    //   $creditoAnterior = $cliente->getCreditos()->last();
                    $cuotasImpagas = $creditoAnterior->obtenerCuotasImpagas();
                    $montoAgregado = 0;
                    $numerosDeCuotasPendientesArray = array();
                    foreach ($cuotasImpagas as $cuotai) {
                        $montoAgregado = $montoAgregado + $cuotai->getMonto();
                        $numerosDeCuotasPendientesArray[] = $cuotai->getNumeroDeCuota();
                        $montoDeCuotaImpaga = $cuotai->getMonto();
                    }
                }
                $montoSinAgregado = $monto;
                $monto = $monto + $montoAgregado;
            }
            if ($montoAgregado == '') {
                $montoAgregado = 0;
            }

            $montoPorCuota = ceil($formula->obtenerMontoPorCuota($monto, $cant_cuotas, $montoUsuario, $this->view->usuario->getSucursal()->getId()));
            $montoPorCuotaSinAgregado = ceil($formula->obtenerMontoPorCuota($montoSinAgregado, $cant_cuotas, $montoUsuario, $this->view->usuario->getSucursal()->getId()));

            if (!empty($vencimientoUsuarioStr)) {
                $vencimientoUsuario = new \DateTime($vencimientoUsuarioStr);

                $fechaPrimerVencimiento = $formula->obtenerFechaPrimieraCuota($vencimientoUsuario);
            }

            $tasa = $formula->obtenerTasaCalculoPorSucursal($cant_cuotas, $this->view->usuario->getSucursal()->getId());
        }
        if ($tasa) {
            $this->view->tasa_id = $tasa->getId();
            $this->view->valor_tasa = $tasa->getValor();
        }
        $this->view->monto_definitivo = $monto;
        $this->view->cant_cuotas = $cant_cuotas;
        $this->view->monto_x_cuota = $montoPorCuota;
        $this->view->monto_x_cuota_sin_agregado = $montoPorCuotaSinAgregado;
        $this->view->monto_agregado = $montoAgregado;
        $this->view->vencimiento_primera_cuota = $fechaPrimerVencimiento; //$fechaPrimerVencimiento;
        $this->view->cuotas_pendientes = implode(',', $numerosDeCuotasPendientesArray);
        $this->view->cantidad_de_cuotas_pendientes = count($numerosDeCuotasPendientesArray);
        $this->view->monto_cuota_impaga = $montoDeCuotaImpaga;
        $this->view->monto_sin_agregados = $montoSinAgregado;
    }

    public function pagoscuotaAction() {
        $this->_helper->layout->disableLayout();

        //$this->_creditoDao = new Doctrine_Model_CreditoDao();
        $pagos = new Doctrine\Common\Collections\ArrayCollection();
        $id_credito = $this->getRequest()->getParam("id_credito");
        $id_cuota = $this->getRequest()->getParam("id_cuota");
        if ($id_credito && $id_cuota) {
            //$credito = new Doctrine_Model_Entities_Credito();
            $credito = $this->_creditoDao->obtenerPorId($id_credito);
            $cuotas = $credito->getCuotas();
            foreach ($cuotas as $cuota) {
                if ($cuota->getId() == $id_cuota) {
                    $pagos = $cuota->getPagos();
                    continue;
                }
            }
        }
        $pagos_ids = array();
        foreach ($pagos as $pago) {
            $pagos_ids[] = $pago->getId();
        }
        $this->view->id_credito = $id_credito;
        $this->view->id_cuota = $id_cuota;
        $this->view->pagos = $pagos;
        $this->view->pagos_ids = implode(',', $pagos_ids);

        $this->render("pagoscuotatooltip");
    }

    public function imprimirpagoAction() {
        $this->_helper->layout->disableLayout();

        $usuario = new Doctrine_Model_Entities_Usuario();
        $usuario = $this->view->usuario;

        $credito_id = $this->getRequest()->getParam("credito_id");
        $cuotas_id = $this->getRequest()->getParam("cuotas_id");
        $pago_id = $this->getRequest()->getParam("pago_id", 0);
        $cuotas_id = explode(",", $cuotas_id);

        $cuotas_pagas = array();
        $credito = new Doctrine_Model_Entities_Credito();
        $credito = $this->_creditoDao->obtenerPorId($credito_id);
        $cant_cuotas_credito = $credito->getNroCuotas();
        foreach ($cuotas_id as $id) {
            $cuotas_pagas[] = $credito->obtenerCuotaPorId($id);
        }

        // create PDF
        $pdf = new Zend_Pdf();
        //$page = new Zend_Pdf_Page(Zend_Pdf_Page::SIZE_A4);
        //$image = Zend_Pdf_Image::imageWithPath('imagenes/logoBlanco.jpg');

        $font = Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_COURIER);

        $cuota = new Doctrine_Model_Entities_Cuota();
        $cant = count($cuotas_pagas);
        $cuota = $cuotas_pagas[0];

        foreach ($cuotas_pagas as $cuota) {

            $val = 0;
            if (!$cuota->estoySaldada())
                $val = 1;

            $pagos = $cuota->getPagos();
            $pago = $pagos->last();
            //foreach ($cuota->getPagos() as $pago) {
            $c = 0;
            $c = -20;
            $f = 280; //840; 
            //$page = new Zend_Pdf_Page("595:250");
            $page = new Zend_Pdf_Page("641:298");

            /* Recibo credyphone */
            //$page->drawImage($image, $c + 50, $f - 60, $c + 230, $f - 10);
            $page->setFont($font, 18)
                    ->drawText('CREDYPHONE', $c + 75, $f - 50);
            $page->setFont($font, 10)
                    ->drawText('Sucursal: ', $c + 75, $f - 62)
                    ->drawText(utf8_decode('Dirección: '), $c + 50, $f - 72)
                    ->drawText('Tel: ', $c + 75, $f - 82)
                    ->drawText("{$usuario->getSucursal()->getDescripcion()}", $c + 130, $f - 62)
                    ->drawText(utf8_decode($usuario->getSucursal()->getDireccion()), $c + 115, $f - 72)
                    ->drawText($usuario->getSucursal()->getTelefonos(), $c + 100, $f - 82);

            $f -= 10;
            if (!$cuota->estoySaldada()) {
                $page->setFont($font, 15)
                        ->setFillColor(Zend_Pdf_Color_Html::color('#990000'))
                        ->drawText('PAGO PARCIAL', $c + 100, $f - 88)
                        ->setFillColor(Zend_Pdf_Color_Html::color('#000000'));
            }
            $page->setFont($font, 10)
                    ->drawText('N# Credito : ', $c + 50, $f - 105)
                    ->drawText('Apellidos  : ', $c + 50, $f - 120)
                    ->drawText('Nombres    : ', $c + 50, $f - 135)
                    ->drawText('Emitido    : ', $c + 50, $f - 150)
                    ->drawText('N# Pago    : ', $c + 50, $f - 165)
                    ->drawText('Efectivo   : ', $c + 50, $f - 180);
            if (!$credito->getSaldo() && ($cuota->getNumeroDeCuota() == $credito->getNroCuotas())) {
                $page->drawText("CREDITO CANCELADO", $c + 65, $f - 210);
            }
            $page->setFont($font, 11)
                    ->drawText($credito->getId(), $c + 130, $f - 105)
                    ->drawText("{$credito->getCliente()->getApellido()}", $c + 130, $f - 120)
                    ->drawText("{$credito->getCliente()->getNombres()}", $c + 130, $f - 135)
                    ->drawText("{$pago->getFecha()->format("d/m/Y")}", $c + 130, $f - 150)
                    ->drawText("{$cuota->getNumeroDeCuota()} de " . $cant_cuotas_credito, $c + 130, $f - 165);
            $page->drawText("$ {$pago->getMonto()}", $c + 130, $f - 180);

            $c = 0;
            $c = 60;
            $f += 10;
            /* Recibo cliente */
            //$page->drawImage($image, $c + 300, $f - 60, $c + 480, $f - 10);
            $page->setFont($font, 18)
                    ->drawText('CREDYPHONE', $c + 330, $f - 50);
            $page->setFont($font, 10)
                    ->drawText('Sucursal: ', $c + 330, $f - 62)
                    ->drawText(utf8_decode('Dirección: '), $c + 300, $f - 72)
                    ->drawText('Tel: ', $c + 330, $f - 82)
                    ->drawText("{$usuario->getSucursal()->getDescripcion()}", $c + 385, $f - 62)
                    ->drawText(utf8_decode($usuario->getSucursal()->getDireccion()), $c + 365, $f - 72)
                    ->drawText($usuario->getSucursal()->getTelefonos(), $c + 355, $f - 82);

            $f -= 10;
            if (!$cuota->estoySaldada()) {
                $page->setFont($font, 15)
                        ->setFillColor(Zend_Pdf_Color_Html::color('#990000'))
                        ->drawText('PAGO PARCIAL', $c + 350, $f - 88)
                        ->setFillColor(Zend_Pdf_Color_Html::color('#000000'));
            }
            $page->setFont($font, 10)
                    ->drawText('N# Credito : ', $c + 300, $f - 105)
                    ->drawText('Apellidos  : ', $c + 300, $f - 120)
                    ->drawText('Nombres    : ', $c + 300, $f - 135)
                    ->drawText('Emitido    : ', $c + 300, $f - 150)
                    ->drawText('Otorgado   : ', $c + 300, $f - 165)
                    ->drawText('N# Pago    : ', $c + 300, $f - 180)->drawText('Restan : ', $c + 415, $f - 180)
                    ->drawText('Efectivo   : ', $c + 300, $f - 195);
            if ($credito->getSaldo()) {
                if ($cuota->getNumeroDeCuota() == $credito->getNroCuotas()) {
                    $page->drawText("CREDITO CANCELADO", $c + 315, $f - 210);
                } else {
                    if ($cuota->estoySaldada()) {
                        /* obtengo la siguiente cuota para tomar su vencimiento */
                        $sig_venc = $credito->obtenerCuotaPorNumero($cuota->getNumeroDeCuota() + 1)->getVencimientoOriginal();
                    } else {
                        $sig_venc = $cuota->getVencimiento();
                    }
                    $page->drawText("Prox. Vencimiento : {$sig_venc->format("d/m/Y")}", $c + 315, $f - 210);
                }
            } else {
                if ($cuota->getNumeroDeCuota() == $credito->getNroCuotas()) {
                    $page->drawText("CREDITO CANCELADO", $c + 315, $f - 210);
                } else {
                    if ($cuota->estoySaldada()) {
                        /* obtengo la siguiente cuota para tomar su vencimiento */
                        $sig_venc = $credito->obtenerCuotaPorNumero($cuota->getNumeroDeCuota() + 1)->getVencimientoOriginal();
                    } else {
                        $sig_venc = $cuota->getVencimiento();
                    }
                    $page->drawText("Prox. Vencimiento : {$sig_venc->format("d/m/Y")}", $c + 315, $f - 210);
                }
            }

            $page->setFont($font, 11)
                    ->drawText($credito->getId(), $c + 380, $f - 105)
                    ->drawText("{$credito->getCliente()->getApellido()}", $c + 380, $f - 120)
                    ->drawText("{$credito->getCliente()->getNombres()}", $c + 380, $f - 135)
                    ->drawText("{$pago->getFecha()->format("d/m/Y")}", $c + 380, $f - 150)
                    ->drawText("{$credito->getFecha()->format("d/m/Y")}", $c + 380, $f - 165)
                    ->drawText("{$cuota->getNumeroDeCuota()}", $c + 380, $f - 180)->drawText($cant_cuotas_credito - ($cuota->getNumeroDeCuota() - $val ), $c + 475, $f - 180)
                    ->drawText("$ {$pago->getMonto()}", $c + 380, $f - 195);

            //$f -= 220;
            $pdf->pages[] = $page;
            //}
        }

        $fecha = new DateTime();
        $filename = "pago_{$credito->getId()}_{$fecha->format("Ymd")}";

        $this->getResponse()->setHeader('Content-type', 'application/pdf', true);
        $this->getResponse()->setHeader('Content-disposition', "inline; filename={$filename}.pdf", true);
        $this->getResponse()->setBody($pdf->render());
    }

    public function imprimirpago3Action() {
        $this->_helper->layout->disableLayout();

        $usuario = new Doctrine_Model_Entities_Usuario();
        $usuario = $this->view->usuario;

        $credito_id = $this->getRequest()->getParam("credito_id");
        $cuotas_id = $this->getRequest()->getParam("cuotas_id");
        $pago_id = $this->getRequest()->getParam("pago_id", 0);
        $cuotas_id = explode(",", $cuotas_id);

        $cuotas_pagas = array();
        $credito = new Doctrine_Model_Entities_Credito();
        $credito = $this->_creditoDao->obtenerPorId($credito_id);
        $cant_cuotas_credito = $credito->getNroCuotas();
        foreach ($cuotas_id as $id) {
            $cuotas_pagas[] = $credito->obtenerCuotaPorId($id);
        }

        $cuota = new Doctrine_Model_Entities_Cuota();
        $cant = count($cuotas_pagas);
        $cuota = $cuotas_pagas[0];

        foreach ($cuotas_pagas as $cuota) {
            foreach ($cuota->getPagos() as $pago) {

                echo "CREDYPHONE";
                echo "Sucursal: " . $usuario->getSucursal()->getDescripcion() . "<br/>";
                echo "Direccion: " . $usuario->getSucursal()->getDireccion() . "<br/>";
                echo "Tel: 422-6102 / 483-3972 <br/><br/>";

                echo "Nro. Credito: " . $credito->getId() . "<br/>";
                echo "Apellido: " . $credito->getCliente()->getApellido() . "<br/>";
                echo "Nombre: " . $credito->getCliente()->getNombres() . "<br/>";
                echo "Emitido: " . $pago->getFecha()->format("d/m/Y") . "<br/>";
                if ((count($cuota->getPagos()) > 1 && $cuota->getSaldo() == 0) || (count($cuota->getPagos()) == 1 && $cuota->getSaldo() > 0) || (count($cuota->getPagos()) > 1 && $cuota->getSaldo() > 0)) {
                    echo "Monto: $" . $pago->getMonto() . "<br/>";
                } else {
                    echo "Monto: $" . $cuota->getMontoPagado() . "<br/>";
                }
                echo "<br/><br/><hr><br/><br/><br/>";
            }
        }
    }

    public function imprimirpagolpt1Action() {
        $this->_helper->layout->disableLayout();

        $usuario = new Doctrine_Model_Entities_Usuario();
        $usuario = $this->view->usuario;

        $credito_id = $this->getRequest()->getParam("credito_id");
        $cuotas_id = $this->getRequest()->getParam("cuotas_id");

        $pagos_ids = $this->getRequest()->getParam("pagos_ids", 0);
        $cuotas_a_cuentas_ids = $this->getRequest()->getParam("cuotas_a_cuenta", 0);
        $cuotas_id = explode(",", $cuotas_id);
        $pagos_ids = explode(",", $pagos_ids);
        $cuotas_a_cuentas_ids = explode(",", $cuotas_a_cuentas_ids);

        $cuotas_pagas = array();
        $credito = new Doctrine_Model_Entities_Credito();
        $credito = $this->_creditoDao->obtenerPorId($credito_id);

        foreach ($cuotas_id as $id) {
            $cuotas_pagas[] = $credito->obtenerCuotaPorId($id);
        }


        /* Tito */
        $datos = array();

        $datos["sucursal"] = $usuario->getSucursal()->getDescripcion();
        $datos["direccion"] = $usuario->getSucursal()->getDireccion();
        $datos["telefonos"] = $usuario->getSucursal()->getTelefonos();

        $datos["credito_id"] = $credito->getId();
        $datos["nro_credito"] = $credito->getNumero();
        $datos["apellido"] = $credito->getCliente()->getApellido();
        $datos["nombres"] = $credito->getCliente()->getNombres();
        $datos["otorgado"] = $credito->getFecha()->format("d/m/Y");
        $datos["cantidad_cuotas"] = $credito->getNroCuotas();

        $datos["pagos"] = array();

        foreach ($cuotas_pagas as $cuota) {
            $sub_datos = array();

            $val = 0;
            if (!$cuota->estoySaldada())
                $val = 1;

            $pagos = $cuota->getPagos();
            $pago = $pagos->last();

            $sub_datos["pago_parcial"] = "";
            if (!$cuota->estoySaldada()) {
                $sub_datos["pago_parcial"] = 'PAGO PARCIAL';
            }

            $sub_datos["emitido"] = $pago->getFecha()->format("d/m/Y");
            $sub_datos["nro_cuota"] = $cuota->getNumeroDeCuota();
            $sub_datos["restan"] = $datos["cantidad_cuotas"] - ($cuota->getNumeroDeCuota() - $val);
            $sub_datos["efectivo"] = $pago->getMonto() - $pago->getInteresesNoCobrados();
            $sub_datos["descuento"] = $pago->getInteresesNoCobrados();

            $sub_datos["prox_vencimiento"] = "";
            $sub_datos["credito_cancelado"] = "";
            if ($cuota->getNumeroDeCuota() == $credito->getNroCuotas() && $sub_datos["pago_parcial"] != 'PAGO PARCIAL') {
                $sub_datos["credito_cancelado"] = "CREDITO CANCELADO";
            } else {
                if ($cuota->estoySaldada()) {
                    $sig_venc = $credito->obtenerCuotaPorNumero($cuota->getNumeroDeCuota() + 1)->getVencimientoOriginal();
                } else {
                    if ($cuota->getVencimiento() >= $cuota->getVencimientoOriginal()):
                        $sig_venc = $cuota->getVencimiento();
                    else:
                        $sig_venc = $cuota->getVencimientoOriginal();
                    endif;
                }
                $sub_datos["prox_vencimiento"] = $sig_venc->format("d/m/Y");
            }
            $datos["pagos"][] = $sub_datos;
        }

        /* Tito */

        foreach ($pagos_ids as $id) {
            $pagosRealizados[] = Doctrine_Model_Referencias::obtenerPorId('Doctrine_Model_Entities_Pago', $id);
        }

        $cuota = new Doctrine_Model_Entities_Cuota();

        $cuota = $cuotas_pagas[0];

        $this->view->datos = $datos;
        $this->view->usuario = $usuario;
        $this->view->credito = $credito;
        $this->view->cuotas_pagas = $cuotas_pagas;
        $this->view->cuota = $cuota;
        $this->view->pagosRealizados = $pagosRealizados;
        $this->view->nro_pago = count($cuota->getPagos()) . ' restan ' . count($credito->obtenerCuotasImpagas());
    }

    public function imprimirotorgacionAction() {
        $this->_helper->layout->disableLayout();
        $this->_helper->viewRenderer->setNoRender();

        $usuario = new Doctrine_Model_Entities_Usuario();
        $usuario = $this->view->usuario;

        $credito_id = $this->getRequest()->getParam("credito_id");

        $credito = new Doctrine_Model_Entities_Credito();
        $credito = $this->_creditoDao->obtenerPorId($credito_id);
        $cant_cuotas_credito = $credito->getNroCuotas();

        // create PDF
        $pdf = new Zend_Pdf();
        //$page = new Zend_Pdf_Page(Zend_Pdf_Page::SIZE_A4);
        //$image = Zend_Pdf_Image::imageWithPath('imagenes/logoBlanco.jpg');

        $font = Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_COURIER_BOLD);

        $c = 0;
        $c = -20;
        $f = 280;

        $page = new Zend_Pdf_Page("641:298");

        /* Recibo credyphone */
        //$page->drawImage($image, $c + 50, $f - 60, $c + 230, $f - 10);
        $page->setFont($font, 18)
                ->drawText('CREDYPHONE', $c + 75, $f - 50);
        $page->setFont($font, 10)
                ->drawText('Sucursal: ', $c + 75, $f - 62)
                ->drawText(utf8_decode('Dirección: '), $c + 50, $f - 72)
                ->drawText('Tel: ', $c + 75, $f - 82)
                ->drawText("{$usuario->getSucursal()->getDescripcion()}", $c + 130, $f - 62)
                ->drawText(utf8_decode($usuario->getSucursal()->getDireccion()), $c + 115, $f - 72)
                ->drawText($usuario->getSucursal()->getTelefonos(), $c + 100, $f - 82);

        $f -= 10;
        $page->setFont($font, 15)
                ->setFillColor(Zend_Pdf_Color_Html::color('#990000'))
                /* ->drawText('OTORGACION', $c + 100, $f - 88) */
                ->setFont($font, 10)
                ->setFillColor(Zend_Pdf_Color_Html::color('#000000'))
                ->drawText('N# Credito     : ', $c + 50, $f - 105)
                ->drawText('Apellidos      : ', $c + 50, $f - 120)
                ->drawText('Nombres        : ', $c + 50, $f - 135)
                ->drawText('Otorgado       : ', $c + 50, $f - 150)
                ->drawText('Cant. Cuotas   : ', $c + 50, $f - 165)
                ->drawText('Importe Cuota  : ', $c + 50, $f - 180)
                ->drawText('Importe Total  : ', $c + 50, $f - 195);
        $page->setFont($font, 11)
                ->drawText($credito->getId(), $c + 150, $f - 105)
                ->drawText("{$credito->getCliente()->getApellido()}", $c + 150, $f - 120)
                ->drawText("{$credito->getCliente()->getNombres()}", $c + 150, $f - 135)
                ->drawText("{$credito->getFecha()->format("d/m/Y")}", $c + 150, $f - 150)
                ->drawText($cant_cuotas_credito, $c + 150, $f - 165)
                ->drawText("$ {$credito->getCuotas()->first()->getMontoOriginal()}", $c + 150, $f - 180)
                ->drawText("$ {$credito->getMonto()}", $c + 150, $f - 195);

        $c = 0;
        $c = 60;
        $f += 10;
        /* Recibo cliente */
        //$page->drawImage($image, $c + 300, $f - 60, $c + 480, $f - 10);
        $page->setFont($font, 18)
                ->drawText('CREDYPHONE', $c + 325, $f - 50);
        $page->setFont($font, 10)
                ->drawText('Sucursal: ', $c + 325, $f - 62)
                ->drawText(utf8_decode('Dirección: '), $c + 300, $f - 72)
                ->drawText('Tel: ', $c + 330, $f - 82)
                ->drawText("{$usuario->getSucursal()->getDescripcion()}", $c + 385, $f - 62)
                ->drawText(utf8_decode($usuario->getSucursal()->getDireccion()), $c + 365, $f - 72)
                ->drawText($usuario->getSucursal()->getTelefonos(), $c + 355, $f - 82);

        $f -= 10;
        $page->setFont($font, 15)
                ->setFillColor(Zend_Pdf_Color_Html::color('#990000'))
                /* ->drawText('OTORGACION', $c + 350, $f - 88) */
                ->setFont($font, 10)
                ->setFillColor(Zend_Pdf_Color_Html::color('#000000'))
                ->drawText('N# Credito     : ', $c + 300, $f - 105)
                ->drawText('Apellidos      : ', $c + 300, $f - 120)
                ->drawText('Nombres        : ', $c + 300, $f - 135)
                ->drawText('Otorgado       : ', $c + 300, $f - 150)
                ->drawText('Cant. Cuotas   : ', $c + 300, $f - 165)
                ->drawText('Importe Cuota  : ', $c + 300, $f - 180)
                ->drawText("Vencimiento 1er Cuota: {$credito->getCuotas()->first()->getVencimientoOriginal()->format("d/m/Y")}", $c + 315, $f - 215);
        $page->setFont($font, 11)
                ->drawText($credito->getId(), $c + 400, $f - 105)
                ->drawText("{$credito->getCliente()->getApellido()}", $c + 400, $f - 120)
                ->drawText("{$credito->getCliente()->getNombres()}", $c + 400, $f - 135)
                ->drawText("{$credito->getFecha()->format("d/m/Y")}", $c + 400, $f - 150)
                ->drawText("{$cant_cuotas_credito}", $c + 400, $f - 165)
                ->drawText("$ {$credito->getCuotas()->first()->getMontoOriginal()}", $c + 400, $f - 180);

        $pdf->pages[] = $page;

        $fecha = new DateTime();
        $filename = "otorgacion_{$credito->getId()}_{$fecha->format("Ymd")}";

        $this->getResponse()->setHeader('Content-type', 'application/pdf', true);
        $this->getResponse()->setHeader('Content-disposition', "inline; filename={$filename}.pdf", true);
        $this->getResponse()->setBody($pdf->render());
    }

    public function imprimirpagoscuotaAction() {
        $this->_helper->layout->disableLayout();
        header('Content-Type:', 'application/pdf');
        header('Content-Disposition:', 'inline;');
        $usuario = new Doctrine_Model_Entities_Usuario();
        $usuario = $this->view->usuario;

        $credito_id = $this->getRequest()->getParam("credito_id", 0);
        $cuota_id = $this->getRequest()->getParam("cuota_id", 0);
        $pago_id = (int) $this->getRequest()->getParam("pago_id", 0);

        $credito = new Doctrine_Model_Entities_Credito();
        $credito = $this->_creditoDao->obtenerPorId($credito_id);
        $cant_cuotas_credito = $credito->getNroCuotas();

        $cuota = new Doctrine_Model_Entities_Cuota();
        $cuota = $credito->obtenerCuotaPorId($cuota_id);

        // create PDF
        $pdf = new Zend_Pdf();
        $image = Zend_Pdf_Image::imageWithPath('imagenes/logoBlanco.jpg');
        $font = Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_COURIER_BOLD);

        $c = 0;
        $f = 250; //840;        

        $cant = 1;
        /* foreach ($cuota->getPagos() as $pago) { */
        $pago = $cuota->getPagos()->last();

        $val = 0;
        if (!$cuota->estoySaldada())
            $val = 1;

        /* if ($pago_id > 0) {
          if ($pago->getId() != $pago_id)
          continue;
          } */

        $page = new Zend_Pdf_Page("595:250");

        /* Recibo credyphone */
        $page->drawImage($image, $c + 50, $f - 60, $c + 230, $f - 10);
        $page->setFont($font, 8)
                ->drawText('Sucursal: ', $c + 75, $f - 65)
                ->drawText(utf8_decode('Dirección: '), $c + 50, $f - 73)
                ->drawText('Tel: ', $c + 75, $f - 81)
                ->drawText("{$usuario->getSucursal()->getDescripcion()}", $c + 125, $f - 65)
                ->drawText($usuario->getSucursal()->getDireccion(), $c + 100, $f - 73)
                ->drawText($usuario->getSucursal()->getTelefonos(), $c + 100, $f - 81);

        $f -= 10;
        if (!$cuota->estoySaldada()) {
            $page->setFont($font, 15)
                    ->setFillColor(Zend_Pdf_Color_Html::color('#990000'))
                    ->drawText('PAGO PARCIAL', $c + 100, $f - 88)
                    ->setFillColor(Zend_Pdf_Color_Html::color('#000000'));
        }
        $page->setFont($font, 10)
                ->drawText('N# Credito : ', $c + 50, $f - 105)
                ->drawText('Apellidos  : ', $c + 50, $f - 120)
                ->drawText('Nombres    : ', $c + 50, $f - 135)
                ->drawText('Emitido    : ', $c + 50, $f - 150)
                ->drawText('N# Pago    : ', $c + 50, $f - 165)
                ->drawText('Efectivo   : ', $c + 50, $f - 180);
        if (!$credito->getSaldo()) {
            $page->drawText("CREDITO CANCELADO", $c + 65, $f - 210);
        }
        $page->setFont($font, 11)
                ->drawText($credito->getId(), $c + 130, $f - 105)
                ->drawText("{$credito->getCliente()->getApellido()}", $c + 130, $f - 120)
                ->drawText("{$credito->getCliente()->getNombres()}", $c + 130, $f - 135)
                ->drawText("{$pago->getFecha()->format("d/m/Y")}", $c + 130, $f - 150)
                ->drawText("{$cuota->getNumeroDeCuota()} de " . ($cant_cuotas_credito), $c + 130, $f - 165)
                ->drawText("$ {$pago->getMonto()}", $c + 130, $f - 180);



        $f += 10;
        /* Recibo cliente */
        $page->drawImage($image, $c + 300, $f - 60, $c + 480, $f - 10);
        $page->setFont($font, 8)
                ->drawText('Sucursal: ', $c + 330, $f - 65)
                ->drawText(utf8_decode('Dirección: '), $c + 300, $f - 73)
                ->drawText('Tel: ', $c + 330, $f - 81)
                ->drawText("{$usuario->getSucursal()->getDescripcion()}", $c + 380, $f - 65)
                ->drawText($usuario->getSucursal()->getDireccion(), $c + 350, $f - 73)
                ->drawText($usuario->getSucursal()->getTelefonos(), $c + 355, $f - 81);

        $f -= 10;
        if (!$cuota->estoySaldada()) {
            $page->setFont($font, 15)
                    ->setFillColor(Zend_Pdf_Color_Html::color('#990000'))
                    ->drawText('PAGO PARCIAL', $c + 350, $f - 88)
                    ->setFillColor(Zend_Pdf_Color_Html::color('#000000'));
        }
        $page->setFont($font, 10)
                ->drawText('N# Credito : ', $c + 300, $f - 105)
                ->drawText('Apellidos  : ', $c + 300, $f - 120)
                ->drawText('Nombres    : ', $c + 300, $f - 135)
                ->drawText('Emitido    : ', $c + 300, $f - 150)
                ->drawText('Otorgado   : ', $c + 300, $f - 165)
                ->drawText('N# Pago    : ', $c + 300, $f - 180)->drawText('Restan : ', $c + 415, $f - 180)
                ->drawText('Efectivo   : ', $c + 300, $f - 195);

        if ($credito->getSaldo()) {
            /* es la ultima ? */
            if ($cuota->getNumeroDeCuota() == $credito->getNroCuotas()) {
                if ($cuota->estoySaldada()) {
                    $page->drawText("CREDITO CANCELADO", $c + 315, $f - 210);
                } else {
                    if ($cuota->getVencimiento() >= $cuota->getVencimientoOriginal()):
                        $sig_venc = $cuota->getVencimiento();
                    else:
                        $sig_venc = $cuota->getVencimientoOriginal();
                    endif;
                    $page->drawText("Prox. Vencimiento : {$sig_venc->format("d/m/Y")}", $c + 320, $f - 210);
                }
            } else {
                if ($cuota->estoySaldada()) {
                    /* obtengo la siguiente cuota para tomar su vencimiento */
                    $sig_venc = $credito->obtenerCuotaPorNumero($cuota->getNumeroDeCuota() + 1)->getVencimientoOriginal();
                } else {
                    if ($cuota->getVencimiento() >= $cuota->getVencimientoOriginal()):
                        $sig_venc = $cuota->getVencimiento();
                    else:
                        $sig_venc = $cuota->getVencimientoOriginal();
                    endif;
                    $page->drawText("Prox. Vencimiento : {$sig_venc->format("d/m/Y")}", $c + 320, $f - 210);
                }
            }
        } else {
            $page->drawText("CREDITO CANCELADO", $c + 315, $f - 210);
        }

        $page->setFont($font, 11)
                ->drawText($credito->getId(), $c + 380, $f - 105)
                ->drawText("{$credito->getCliente()->getApellido()}", $c + 380, $f - 120)
                ->drawText("{$credito->getCliente()->getNombres()}", $c + 380, $f - 135)
                ->drawText("{$cuota->getUltimaFechaDePago()}", $c + 380, $f - 150)
                ->drawText("{$credito->getFecha()->format("d/m/Y")}", $c + 380, $f - 165)
                ->drawText("{$cuota->getNumeroDeCuota()}", $c + 380, $f - 180)->drawText($cant_cuotas_credito - ($cuota->getNumeroDeCuota() - $val ), $c + 475, $f - 180)
                ->drawText("$ {$pago->getMonto()}", $c + 380, $f - 195);
        //$f -= 220;
        $cant++;
        $pdf->pages[] = $page;
        /* } */
        // save as file
        //echo $pdf->save('pdfs/pago.pdf');
        //echo $pdf->render();

        $fecha = new DateTime();
        $filename = "pago_{$credito->getId()}_{$fecha->format("Ymd")}";

        $this->getResponse()->setHeader('Content-type', 'application/x-pdf', true);
        $this->getResponse()->setHeader('Content-disposition', "inline; filename={$filename}.pdf", true);
        $this->getResponse()->setBody($pdf->render());
    }

    public function desasociargaranteAction() {
        $this->_helper->viewRenderer->setNoRender();


        $garante_id = $this->getRequest()->getParam("garante_id");
        $credito_id = $this->getRequest()->getParam("credito_id");
        $credito = $this->_creditoDao->obtenerPorId($credito_id);
        $credito->setGarante(null);
        if ($this->_creditoDao->guardar($credito)) {
            $parametros = array('persona_id' => $credito->getCliente()->getId());
            $this->_helper->redirector('obternerdatospersona', 'busqueda', 'usuarios', $parametros);
        }
    }

    public function impresioncomprobantesAction() {

        $datos = $this->getRequest()->getParams();
        $this->view->credito_id = $datos['credito_id'];
        $this->view->cliente_id = $datos['cliente_id'];
        $this->view->cuotas_id = $datos['cuotas_id'];
        $this->view->pagos_ids = $datos['pagos_ids'];
        $this->view->cuotas_a_cuenta = $datos['cuotas_a_cuenta'];

        $ctas = explode(',', $datos['conjCuotasPagas']);
        $this->view->credito = $this->_creditoDao->obtenerPorId($datos['credito_id']);
        $this->view->pagos = $datos['pagos'];
        $this->view->apto_renovar = $datos['apto_renovar'];

        $this->view->noCobraIntereses = $datos['noCobraIntereses'];
        $this->view->interesesADescontar = $datos['interesesADescontar'];
        $this->view->cuotas_sin_intereses_ids = $datos['cuotas_sin_intereses_ids'];



        $conjCuotasPagas = array();
        foreach ($ctas as $ctaId) {
            $conjCuotasPagas[] = Doctrine_Model_Referencias::obtenerPorId("Doctrine_Model_Entities_Cuota", $ctaId);
        }
        $this->view->conjCuotasPagas = $conjCuotasPagas;
    }

    public function anularpagoAction() {
        $this->_helper->viewRenderer->setNoRender();
        $this->_helper->getHelper('layout')->disableLayout();
        $credito_id = $this->getRequest()->getParam("credito_id");
        $pago_id = $this->getRequest()->getParam("pago_id");

        //Codigo seguridad
        $usuario = new Doctrine_Model_Entities_Usuario();
        $usuario = $this->view->usuario;

        $fecha_actual = new DateTime();
        $pago = $this->_creditoDao->obtenerPorId($credito_id)->obtenerCuotaPorPagoId($pago_id)->obtenerPagoPorId($pago_id);
        if ($pago->getFecha()->format("d/m/Y") != $fecha_actual->format("d/m/Y")) {
            if (!$usuario->tengoAcceso()) {
                $sessionCodSeguridad = new Zend_Session_Namespace("codigo_seguridad");
                if ($sessionCodSeguridad->codigo) {
                    $this->_codigoDao = new Doctrine_Model_CodigoDao();
                    $unCodigo = new Doctrine_Model_Entities_Codigo();
                    $unCodigo = $this->_codigoDao->obtenerPorCodigo($sessionCodSeguridad->codigo);
                    if ($unCodigo) {
                        if ($unCodigo->getActivo() == 2) {
                            $unCodigo->setActivo(0);
                            $unCodigo->setFechaUso(new DateTime());
                            $this->_codigoDao->guardar($unCodigo);
                            $sessionCodSeguridad->unsetAll();
                        }
                    }
                } else {
                    $sessionCodSeguridad->isPost = $this->getRequest()->isPost();
                    $sessionCodSeguridad->accion = $this->getRequest()->getActionName();
                    $sessionCodSeguridad->controlador = $this->getRequest()->getControllerName();
                    $sessionCodSeguridad->modulo = $this->getRequest()->getModuleName();
                    $sessionCodSeguridad->params = $this->getRequest()->getParams();
                    $this->_helper->redirector->goToSimple("codigoseguridad", "codigo", "admin");
                }
            }
        }
        //Codigo seguridad

        if ($this->getRequest()->isPost()) {
            if (!empty($pago_id)) {
                $credito = $this->_creditoDao->obtenerPorId($credito_id);
                $cuota = $credito->obtenerCuotaPorPagoId($pago_id);
                $pago = $cuota->obtenerPagoPorId($pago_id);
                $montoPago = $pago->getMonto();
                $nroCuota = $cuota->getNumeroDeCuota();
                if (count($cuota->getPagos()) == 1) {
                    $cuota->setMonto($cuota->getMontoOriginal());
                } else {
                    $cuota->setMonto($cuota->getSaldo() + $montoPago-$pago->getInteresesCobrados());
                }

                //esto es por si cobre o no intereses
                //  if($pago->getInteresesCobrados()>0){
                //    $cuota->setMonto($cuota->getMonto()-$pago->getInteresesCobrados());
                // }
//                modificado el 16-05-2014 un viernes con sueño para ver si funcan bien la anulacion de los pagos 
//                cuando se cobran o no intereses, es decir si hay algun monto en los campos 
//                        
//                if ($pago->getInteresesCobrados() > 0 && $pago->getInteresesNoCobrados() == 0) {
//                    $cuota->setMonto($cuota->getMonto() - $pago->getInteresesCobrados());
//                } else {
//                    if ($pago->getInteresesCobrados() > 0 && $pago->getInteresesNoCobrados() > 0) {
//                       $cuota->setMonto($cuota->getMonto()  ); 
//                    }
//                }


                $a = $cuota->getSaldo();
                if ($cuota->getSaldo() > 0) {
                    if ($cuota->getEstado()->soyPagada() || $cuota->getEstado()->soyCanceladaPorRenovacion()) {
                        if ($cuota->getSaldo() != $cuota->getMonto()) {
                            $estadoCuota = Doctrine_Model_Referencias::obtenerPorId('Doctrine_Model_Entities_EstadoCuota', 1);
                        } else {
                            $estadoCuota = Doctrine_Model_Referencias::obtenerPorId('Doctrine_Model_Entities_EstadoCuota', 3);
                        }
                        $cuota->setEstado($estadoCuota);
                    }

                    if ($credito->getEstado()->soySaldado() || $credito->getEstado()->soySaldadoPorRenov()) {
                        $estadoCredito = Doctrine_Model_Referencias::obtenerPorId('Doctrine_Model_Entities_EstadoCredito', 1);
                        $credito->setEstado($estadoCredito);
                    }
                }
                $generarMovimentoDeIntereses = $pago->getGeneraMovimientoIntereses();
                $montoInteresesCobrados = $pago->getInteresesNoCobrados();
                $vencimientoAnterior = $pago->getFechaVencimientoCuota();
                if ($cuota->removerPago($pago)) {
                    $cuota->setVencimiento($vencimientoAnterior);
                    if(count($cuota->getPagos())==0){$cuota->setEstado(Doctrine_Model_Referencias::obtenerPorId('Doctrine_Model_Entities_EstadoCuota', 1));}
                    if ($this->_creditoDao->guardar($credito)) {
                        $this->view->error = false;
                        $this->view->mensaje = "Se Elimino el Pago con exito";

                        $movimiento = new Doctrine_Model_Entities_Salida();
                        $apellidoYNombres = $credito->getCliente()->getApellido() . ', ' . $credito->getCliente()->getNombres();
                        $apellidoYNombres = substr($apellidoYNombres, 0, 22);
                        $movimiento->setDescripcion(" " . $apellidoYNombres . " Cre N&#176;:" . $credito->getNumero() . " (" . $nroCuota . ")");
                        $movimiento->setMonto($montoPago);
                        $movimiento->setCategoria(Doctrine_Model_Referencias::obtenerPorId('Doctrine_Model_Entities_CategoriaMovimiento', 7));
                        $movimiento->setUsuario($this->view->usuario);
                        $this->_movimientoDao->guardar($movimiento);
                        if ($generarMovimentoDeIntereses) {
                            $movimiento = new Doctrine_Model_Entities_Salida();
                            $apellidoYNombres = $credito->getCliente()->getApellido() . ', ' . $credito->getCliente()->getNombres();
                            $apellidoYNombres = substr($apellidoYNombres, 0, 22);
                            $movimiento->setDescripcion(" " . $apellidoYNombres . " Cre N&#176;:" . $credito->getNumero() . " (" . $nroCuota . ")");
                            $movimiento->setMonto(-$montoInteresesCobrados);
                            $movimiento->setCategoria(Doctrine_Model_Referencias::obtenerPorId('Doctrine_Model_Entities_CategoriaMovimiento', 7));
                            $movimiento->setUsuario($this->view->usuario);
                            $this->_movimientoDao->guardar($movimiento);
                        }
                    } else {
                        $this->view->error = true;
                        $this->view->mensaje = "Problemas al intentar eliminar el Pago";
                    }
                } else {
                    $this->view->error = true;
                    $this->view->mensaje = "Problemas al intentar eliminar el Pago";
                }
            }
        }


        $this->_helper->redirector("obtenercredito", "busqueda", "usuarios", array("credito_id" => $credito_id, "error" => $this->view->error, "mensaje" => $this->view->mensaje));
    }

    public function borrarAction() {

        $this->_helper->viewRenderer->setNoRender();
        $this->_helper->getHelper('layout')->disableLayout();
        $credito_id = $this->getRequest()->getParam("credito_id");

        if (!empty($credito_id)) {

            //Codigo seguridad
            $usuario = new Doctrine_Model_Entities_Usuario();
            $usuario = $this->view->usuario;

            $fecha_actual = new DateTime();
            $credito = new Doctrine_Model_Entities_Credito();
            $credito = $this->_creditoDao->obtenerPorId($credito_id);
            $numeroDeCredito = $credito->getNumero();
            //if ($credito->getFecha()->format("d/m/Y") != $fecha_actual->format("d/m/Y")) {
            if (!$usuario->tengoAcceso()) {
                $sessionCodSeguridad = new Zend_Session_Namespace("codigo_seguridad");
                if ($sessionCodSeguridad->codigo) {
                    $this->_codigoDao = new Doctrine_Model_CodigoDao();
                    $unCodigo = new Doctrine_Model_Entities_Codigo();
                    $unCodigo = $this->_codigoDao->obtenerPorCodigo($sessionCodSeguridad->codigo);
                    if ($unCodigo) {
                        if ($unCodigo->getActivo() == 2) {
                            $unCodigo->setActivo(0);
                            $unCodigo->setFechaUso(new DateTime());
                            $this->_codigoDao->guardar($unCodigo);
                            $sessionCodSeguridad->unsetAll();
                        }
                    }
                } else {
                    $sessionCodSeguridad->isPost = $this->getRequest()->isPost();
                    $sessionCodSeguridad->accion = $this->getRequest()->getActionName();
                    $sessionCodSeguridad->controlador = $this->getRequest()->getControllerName();
                    $sessionCodSeguridad->modulo = $this->getRequest()->getModuleName();
                    $sessionCodSeguridad->params = $this->getRequest()->getParams();
                    $this->_helper->redirector->goToSimple("codigoseguridad", "codigo", "admin");
                }
            }
            //}
            //Codigo seguridad

            $credito = $this->_creditoDao->obtenerPorId($credito_id);
            $cliente = $credito->getCliente();
            if ($this->_creditoDao->eliminar($credito)) {
                $unCredito = $credito;
                $apellidoYNombres = $unCredito->getCliente()->getApellido() . ', ' . $unCredito->getCliente()->getNombres();
                $apellidoYNombres = substr($apellidoYNombres, 0, 22);
                $movimiento = new Doctrine_Model_Entities_Entrada();
                $movimiento->setDescripcion(" " . $unCredito->getTipo()->getDescripcionCorta() . '(Nº ' . $numeroDeCredito . ') - ' . $apellidoYNombres);
                $movimiento->setMonto($unCredito->getMonto());
                $movimiento->setCategoria(Doctrine_Model_Referencias::obtenerPorId('Doctrine_Model_Entities_CategoriaMovimiento', 2));
                $movimiento->setUsuario($this->view->usuario);
                $this->_movimientoDao->guardar($movimiento);
            }
        }



        $this->_helper->redirector("obternerdatospersona", "busqueda", "usuarios", array("persona_id" => $cliente->getId()));
    }

    public function impresionotorgacionAction() {

        $this->_helper->_layout->setLayout('layout_pagos');
        $credito_id = $this->getRequest()->getParam("credito_id");
        $lpt1 = $this->getRequest()->getParam("lpt1", null);

        if (!empty($credito_id)) {
            $credito = $this->_creditoDao->obtenerPorId($credito_id);
            $this->view->credito = $credito;
            if ($lpt1) {
                $this->renderScript('credito/imprimirotorgacionlpt1.phtml');
            }
        }
    }

    public function imprimirAction() {


        $credito_id = $this->getRequest()->getParam("credito_id");


        if (!empty($credito_id)) {
            $credito = $this->_creditoDao->obtenerPorId($credito_id);
            $this->view->credito = $credito;
        }
    }

    public function inmuebleexcelAction() {
        $this->_helper->layout->disableLayout();

        $datos = array(
            "tipo_operacion" => "Venta",
            "inmueble" => "Departamento",
            "fecha_alta" => "07/02/2013",
            "ubicacion" => "41 entre 8 y 9 n°554",
            "precio" => "$540000",
            "codigo" => "38",
            "ambientes" => "2",
            "dormitorios" => "1",
            "banos" => "1",
            "sup_total" => "50",
            "sup_cubierta" => "45",
            "lote" => "-",
            "antiguedad" => "0",
            "living_comedor" => "SI",
            "ascensor" => "-",
            "patio" => "-",
            "comedor" => "SI",
            "garage" => "-",
            "living" => "-",
            "balcon" => "-",
            "terraza" => "-",
            "gas" => "SI",
            "cloacas" => "SI",
            "agua" => "SI",
            "telefono" => "-",
            "cable" => "-",
            "energia" => "SI",
            "comentarios" => "sdsa sdas dsad sdasdsd sad xcssadasdas sadsad sada sdad sads sdadsad sadsdas sdsadas dsadsadas da sadasddsad sadsda dssa sdsd asdas dsadsa dsa dsa sadadsd sad.",
        );

        $pdf = new Zend_Pdf();
        $page = new Zend_Pdf_Page(Zend_Pdf_Page::SIZE_A4);

        $font_helvetica_bold = Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_HELVETICA_BOLD);
        $font_helvetica = Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_HELVETICA);

        $c = 0;
        $f = 840;

        /* CABECERA */
        $image = Zend_Pdf_Image::imageWithPath('imagenes/top_logo.jpg');
        $page->drawImage($image, $c + 90, $f - 90, $c + 175, $f - 20);
        $page->setLineWidth(0.5);
        $page->drawLine($c + 50, $f - 100, $c + 545, $f - 100);
        $page->setFillColor(new Zend_Pdf_Color_Html("#000000"));
        $page->setFont($font_helvetica_bold, 9);
        $page->drawText("TEL: (0221) 4256789", $c + 450, $f - 75, 'UTF-8');
        $page->setFont($font_helvetica_bold, 9);
        $page->drawText("E-MAIL: INFO@OFREZCOMIPROPIEDAD.COM.AR", $c + 320, $f - 90, 'UTF-8');
        /* CABECERA */

        $image = Zend_Pdf_Image::imageWithPath('imagenes/top_logo.jpg');
        $page->drawImage($image, $c + 75, $f - 295, $c + 235, $f - 135);

        $page->setLineWidth(0.5);
        $page->drawLine($c + 265, $f - 300, $c + 265, $f - 130);

        /* TITULO DESCRIPCION */
        $page->setFillColor(new Zend_Pdf_Color_Html("#63b7cf"));
        $page->setLineColor(new Zend_Pdf_Color_Html("#ffffff"));
        $page->drawRectangle($c + 280, $f - 150, $c + 545, $f - 130);

        $page->setFillColor(new Zend_Pdf_Color_Html("#ffffff"));
        $page->setFont($font_helvetica_bold, 14);
        $page->drawText('Descripción', $c + 290, $f - 145, 'UTF-8');
        /* END TITULO DESCRIPCION */


        /* DETALLE DESCRIPCION */
        $page->setFillColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->setLineColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->drawRectangle($c + 280, $f - 180, $c + 410, $f - 160);
        $page->setFillColor(new Zend_Pdf_Color_Html("#000000"));
        $page->setFont($font_helvetica, 10);
        $page->drawText('Tipo de Operación', $c + 290, $f - 174, 'UTF-8');
        $page->drawText($datos["tipo_operacion"], $c + 420, $f - 174, 'UTF-8');

        $page->setFillColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->setLineColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->drawRectangle($c + 280, $f - 200, $c + 410, $f - 180);
        $page->setFillColor(new Zend_Pdf_Color_Html("#000000"));
        $page->setFont($font_helvetica, 10);
        $page->drawText('Inmueble', $c + 290, $f - 194, 'UTF-8');
        $page->drawText($datos["inmueble"], $c + 420, $f - 194, 'UTF-8');

        $page->setFillColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->setLineColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->drawRectangle($c + 280, $f - 220, $c + 410, $f - 200);
        $page->setFillColor(new Zend_Pdf_Color_Html("#000000"));
        $page->setFont($font_helvetica, 10);
        $page->drawText('Fecha Alta', $c + 290, $f - 214, 'UTF-8');
        $page->drawText($datos["fecha_alta"], $c + 420, $f - 214, 'UTF-8');

        $page->setFillColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->setLineColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->drawRectangle($c + 280, $f - 240, $c + 410, $f - 220);
        $page->setFillColor(new Zend_Pdf_Color_Html("#000000"));
        $page->setFont($font_helvetica, 10);
        $page->drawText('Ubicación', $c + 290, $f - 234, 'UTF-8');
        $page->drawText($datos["ubicacion"], $c + 420, $f - 234, 'UTF-8');

        $page->setFillColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->setLineColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->drawRectangle($c + 280, $f - 260, $c + 410, $f - 240);
        $page->setFillColor(new Zend_Pdf_Color_Html("#000000"));
        $page->setFont($font_helvetica, 10);
        $page->drawText('Precio', $c + 290, $f - 254, 'UTF-8');
        $page->drawText($datos["precio"], $c + 420, $f - 254, 'UTF-8');

        $page->setFillColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->setLineColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->drawRectangle($c + 280, $f - 280, $c + 410, $f - 260);
        $page->setFillColor(new Zend_Pdf_Color_Html("#000000"));
        $page->setFont($font_helvetica, 10);
        $page->drawText('Cod. Publicación', $c + 290, $f - 274, 'UTF-8');
        $page->drawText($datos["codigo"], $c + 420, $f - 274, 'UTF-8');
        /* DETALLE DESCRIPCION */


        /* TITULO CARACTERISTICAS */
        $page->setFillColor(new Zend_Pdf_Color_Html("#63b7cf"));
        $page->setLineColor(new Zend_Pdf_Color_Html("#ffffff"));
        $page->drawRectangle($c + 50, $f - 340, $c + 545, $f - 320);

        $page->setFillColor(new Zend_Pdf_Color_Html("#ffffff"));
        $page->setFont($font_helvetica_bold, 14);
        $page->drawText('Caracteristicas Generales', $c + 60, $f - 335, 'UTF-8');
        /* END TITULO CARACTERISTICAS */


        /* DETALLE CARACTERISTICAS */
        /* C1 */
        $page->setFillColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->setLineColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->drawRectangle($c + 50, $f - 370, $c + 180, $f - 350);
        $page->setFillColor(new Zend_Pdf_Color_Html("#000000"));
        $page->setFont($font_helvetica, 10);
        $page->drawText('Ambientes', $c + 60, $f - 364, 'UTF-8');
        $page->drawText($datos["ambientes"], $c + 190, $f - 364, 'UTF-8');

        $page->setFillColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->setLineColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->drawRectangle($c + 50, $f - 390, $c + 180, $f - 370);
        $page->setFillColor(new Zend_Pdf_Color_Html("#000000"));
        $page->setFont($font_helvetica, 10);
        $page->drawText('Dormitorios', $c + 60, $f - 384, 'UTF-8');
        $page->drawText($datos["dormitorios"], $c + 190, $f - 384, 'UTF-8');

        $page->setFillColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->setLineColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->drawRectangle($c + 50, $f - 410, $c + 180, $f - 390);
        $page->setFillColor(new Zend_Pdf_Color_Html("#000000"));
        $page->setFont($font_helvetica, 10);
        $page->drawText('Baños', $c + 60, $f - 404, 'UTF-8');
        $page->drawText($datos["banos"], $c + 190, $f - 404, 'UTF-8');

        $page->setFillColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->setLineColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->drawRectangle($c + 50, $f - 430, $c + 180, $f - 410);
        $page->setFillColor(new Zend_Pdf_Color_Html("#000000"));
        $page->setFont($font_helvetica, 10);
        $page->drawText('Superficie total', $c + 60, $f - 424, 'UTF-8');
        $page->drawText($datos["sup_total"], $c + 190, $f - 424, 'UTF-8');

        $page->setFillColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->setLineColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->drawRectangle($c + 50, $f - 450, $c + 180, $f - 430);
        $page->setFillColor(new Zend_Pdf_Color_Html("#000000"));
        $page->setFont($font_helvetica, 10);
        $page->drawText('Superficie Cubierta', $c + 60, $f - 444, 'UTF-8');
        $page->drawText($datos["sup_cubierta"], $c + 190, $f - 444, 'UTF-8');

        $page->setFillColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->setLineColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->drawRectangle($c + 50, $f - 470, $c + 180, $f - 450);
        $page->setFillColor(new Zend_Pdf_Color_Html("#000000"));
        $page->setFont($font_helvetica, 10);
        $page->drawText('Lote', $c + 60, $f - 464, 'UTF-8');
        $page->drawText($datos["lote"], $c + 190, $f - 464, 'UTF-8');

        $page->setFillColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->setLineColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->drawRectangle($c + 50, $f - 490, $c + 180, $f - 470);
        $page->setFillColor(new Zend_Pdf_Color_Html("#000000"));
        $page->setFont($font_helvetica, 10);
        $page->drawText('Antiguedad', $c + 60, $f - 484, 'UTF-8');
        $page->drawText($datos["antiguedad"], $c + 190, $f - 484, 'UTF-8');

        $page->setFillColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->setLineColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->drawRectangle($c + 50, $f - 510, $c + 180, $f - 490);
        $page->setFillColor(new Zend_Pdf_Color_Html("#000000"));
        $page->setFont($font_helvetica, 10);
        $page->drawText('Living/Comedor', $c + 60, $f - 504, 'UTF-8');
        $page->drawText($datos["living_comedor"], $c + 190, $f - 504, 'UTF-8');

        /* C2 */
        $page->setFillColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->setLineColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->drawRectangle($c + 280, $f - 370, $c + 410, $f - 350);
        $page->setFillColor(new Zend_Pdf_Color_Html("#000000"));
        $page->setFont($font_helvetica, 10);
        $page->drawText('Ascensor', $c + 290, $f - 364, 'UTF-8');
        $page->drawText($datos["ascensor"], $c + 420, $f - 364, 'UTF-8');

        $page->setFillColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->setLineColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->drawRectangle($c + 280, $f - 390, $c + 410, $f - 370);
        $page->setFillColor(new Zend_Pdf_Color_Html("#000000"));
        $page->setFont($font_helvetica, 10);
        $page->drawText('Patio', $c + 290, $f - 384, 'UTF-8');
        $page->drawText($datos["patio"], $c + 420, $f - 384, 'UTF-8');

        $page->setFillColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->setLineColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->drawRectangle($c + 280, $f - 410, $c + 410, $f - 390);
        $page->setFillColor(new Zend_Pdf_Color_Html("#000000"));
        $page->setFont($font_helvetica, 10);
        $page->drawText('Comedor', $c + 290, $f - 404, 'UTF-8');
        $page->drawText($datos["comedor"], $c + 420, $f - 404, 'UTF-8');

        $page->setFillColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->setLineColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->drawRectangle($c + 280, $f - 430, $c + 410, $f - 410);
        $page->setFillColor(new Zend_Pdf_Color_Html("#000000"));
        $page->setFont($font_helvetica, 10);
        $page->drawText('Garage', $c + 290, $f - 424, 'UTF-8');
        $page->drawText($datos["garage"], $c + 420, $f - 424, 'UTF-8');

        $page->setFillColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->setLineColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->drawRectangle($c + 280, $f - 450, $c + 410, $f - 430);
        $page->setFillColor(new Zend_Pdf_Color_Html("#000000"));
        $page->setFont($font_helvetica, 10);
        $page->drawText('Living', $c + 290, $f - 444, 'UTF-8');
        $page->drawText($datos["living"], $c + 420, $f - 444, 'UTF-8');

        $page->setFillColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->setLineColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->drawRectangle($c + 280, $f - 470, $c + 410, $f - 450);
        $page->setFillColor(new Zend_Pdf_Color_Html("#000000"));
        $page->setFont($font_helvetica, 10);
        $page->drawText('Balcon', $c + 290, $f - 464, 'UTF-8');
        $page->drawText($datos["balcon"], $c + 420, $f - 464, 'UTF-8');

        $page->setFillColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->setLineColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->drawRectangle($c + 280, $f - 490, $c + 410, $f - 470);
        $page->setFillColor(new Zend_Pdf_Color_Html("#000000"));
        $page->setFont($font_helvetica, 10);
        $page->drawText('Terraza', $c + 290, $f - 484, 'UTF-8');
        $page->drawText($datos["terraza"], $c + 420, $f - 484, 'UTF-8');

        /* DETALLE CARACTERISTICAS */


        /* TITULO SERVICIOS */
        $page->setFillColor(new Zend_Pdf_Color_Html("#63b7cf"));
        $page->setLineColor(new Zend_Pdf_Color_Html("#ffffff"));
        $page->drawRectangle($c + 50, $f - 560, $c + 545, $f - 540);

        $page->setFillColor(new Zend_Pdf_Color_Html("#ffffff"));
        $page->setFont($font_helvetica_bold, 14);
        $page->drawText('Servicios', $c + 60, $f - 555, 'UTF-8');
        /* END TITULO SERVICIOS */


        /* DETALLE SERVICIOS */
        /* C1 */
        $page->setFillColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->setLineColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->drawRectangle($c + 50, $f - 590, $c + 180, $f - 570);
        $page->setFillColor(new Zend_Pdf_Color_Html("#000000"));
        $page->setFont($font_helvetica, 10);
        $page->drawText('Gas', $c + 60, $f - 584, 'UTF-8');
        $page->drawText($datos["gas"], $c + 190, $f - 584, 'UTF-8');

        $page->setFillColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->setLineColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->drawRectangle($c + 50, $f - 610, $c + 180, $f - 590);
        $page->setFillColor(new Zend_Pdf_Color_Html("#000000"));
        $page->setFont($font_helvetica, 10);
        $page->drawText('Cloacas', $c + 60, $f - 604, 'UTF-8');
        $page->drawText($datos["cloacas"], $c + 190, $f - 604, 'UTF-8');

        $page->setFillColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->setLineColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->drawRectangle($c + 50, $f - 630, $c + 180, $f - 610);
        $page->setFillColor(new Zend_Pdf_Color_Html("#000000"));
        $page->setFont($font_helvetica, 10);
        $page->drawText('Agua', $c + 60, $f - 624, 'UTF-8');
        $page->drawText($datos["agua"], $c + 190, $f - 624, 'UTF-8');

        /* C2 */
        $page->setFillColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->setLineColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->drawRectangle($c + 280, $f - 590, $c + 410, $f - 570);
        $page->setFillColor(new Zend_Pdf_Color_Html("#000000"));
        $page->setFont($font_helvetica, 10);
        $page->drawText('Telefono', $c + 290, $f - 584, 'UTF-8');
        $page->drawText($datos["telefono"], $c + 420, $f - 584, 'UTF-8');

        $page->setFillColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->setLineColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->drawRectangle($c + 280, $f - 610, $c + 410, $f - 590);
        $page->setFillColor(new Zend_Pdf_Color_Html("#000000"));
        $page->setFont($font_helvetica, 10);
        $page->drawText('Cable', $c + 290, $f - 604, 'UTF-8');
        $page->drawText($datos["cable"], $c + 420, $f - 604, 'UTF-8');

        $page->setFillColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->setLineColor(new Zend_Pdf_Color_Html("#d2deea"));
        $page->drawRectangle($c + 280, $f - 630, $c + 410, $f - 610);
        $page->setFillColor(new Zend_Pdf_Color_Html("#000000"));
        $page->setFont($font_helvetica, 10);
        $page->drawText('Energia Electrica', $c + 290, $f - 624, 'UTF-8');
        $page->drawText($datos["energia"], $c + 420, $f - 624, 'UTF-8');

        /* DETALLE SERVICIOS */


        /* TITULO COMENTARIOS */
        $page->setFillColor(new Zend_Pdf_Color_Html("#63b7cf"));
        $page->setLineColor(new Zend_Pdf_Color_Html("#ffffff"));
        $page->drawRectangle($c + 50, $f - 680, $c + 545, $f - 660);

        $page->setFillColor(new Zend_Pdf_Color_Html("#ffffff"));
        $page->setFont($font_helvetica_bold, 14);
        $page->drawText('Comentarios', $c + 60, $f - 675, 'UTF-8');
        /* END TITULO COMENTARIOS */

        /* DETALLE COMENTARIOS */
        $page->setFillColor(new Zend_Pdf_Color_Html("#000000"));
        $page->setFont($font_helvetica, 10);

        $comentarios = "";
        $palabras = explode(" ", $datos["comentarios"]);
        $cont = 0;
        foreach ($palabras as $palabra) {
            $comentarios .= $palabra . " ";
            $cont++;
            if ($cont == 12) {
                $cont = 0;
                $comentarios .= "<br/>";
            }
        }

        $lineas = explode("<br/>", $comentarios);
        $h = 0;
        foreach ($lineas as $linea) {
            $page->drawText($linea, $c + 60, ($f - 700) - $h, 'UTF-8');
            $h += 15;
        }

        /* END DETALLE COMENTARIOS */

        $page->setFillColor(new Zend_Pdf_Color_Html("#000000"));
        $page->setLineColor(new Zend_Pdf_Color_Html("#000000"));


        $pdf->pages[] = $page;


        $filename = "inmueble";

        $this->getResponse()->setHeader('Content-type', 'application/x-pdf', true);
        $this->getResponse()->setHeader('Content-disposition', "inline; filename={$filename}.pdf", true);
        //$this->getResponse()->setBody($pdf->render());
        echo $pdf->render();
    }

    public function cancelargeneracionpromesasautogeneradasAction() {

        // $this->_helper->_layout->setLayout('layout_pagos');
        $credito_id = $this->getRequest()->getParam("credito_id");
        $creditoDao = new Doctrine_Model_CreditoDao();
        $this->_helper->viewRenderer->setNoRender();

        if (!empty($credito_id)) {
            $credito = $this->_creditoDao->obtenerPorId($credito_id);
            $credito->setGeneraPromesaAutogenerada(0);
            $ok = $creditoDao->guardar($credito);
            $params = array('persona_id' => $credito->getCliente()->getId());
            $this->_helper->redirector('obternerdatospersona', 'busqueda', 'usuarios', $params);
        }
    }

}
